#include "..\include\Vector3.h"
#include "foundation\PxVec3.h"


using namespace Boon;

const Vector3 Boon::Vector3::UP = Vector3( .0f, 1.0f, .0f );
const Vector3 Boon::Vector3::RIGHT = Vector3( 1.0f, .0f, .0f );
const Vector3 Boon::Vector3::FORWARD = Vector3( .0f, .0f, 1.0f );
const Vector3 Boon::Vector3::ZERO = Vector3();
const Vector3 Boon::Vector3::ONE = Vector3( 1.0f, 1.0f, 1.0f );


Vector3::Vector3(void)
	: x( .0f ), y( .0f ), z( .0f )
{
}

Vector3::Vector3( float _x, float _y, float _z )
	: x( _x ), y( _y ), z( _z )
{
}

Boon::Vector3::Vector3( const Vector3& o )
	: x( o.x ), y( o.y ), z( o.z )
{

}

Boon::Vector3::Vector3( const physx::PxVec3& o )
	: x( o.x ), y( o.y ), z( o.z )
{

}

Boon::Vector3::operator physx::PxVec3() const
{
	return physx::PxVec3( x, y, z );
}

float Boon::Vector3::Dot( const Vector3& v )
{
	return physx::PxVec3( v.x, v.y, v.z ).dot( physx::PxVec3( x, y, z ) );
}
